package com.wuhanins.insmytestdemo.common.ui.dashboard;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import com.blankj.utilcode.util.ArrayUtils;
import com.wuhanins.common.utils.INSLog;
import com.wuhanins.insmytestdemo.databinding.FragmentDashboardBinding;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;

public class DashboardFragment extends Fragment {

    private DashboardViewModel dashboardViewModel;
    private FragmentDashboardBinding binding;
    private String description = "嘉华锦屏|永平无量山|宣威众合成|重庆飞源|江西新华|天津冶金集团中兴盛达钢业有限公司|天津市春鹏预应力钢绞线有限公司|水电一局|白银有色西北铜加工有限公司|云南宸磊建材有限公司|水电十四局|华新剑川|贵州盘江|廉江市兴顺石料有限公司|河间市远大橡塑发泡有限公司|衡水众鑫工程橡塑有限公司|柳州钢铁股份有限公司|中国宝武钢铁集团有限公司|鞍钢股份有限公司|昆明钢铁股份有限公司|广东省韶关钢铁集团有限公司|河钢股份有限公司|信宜市进华石料有限公司|高州市润鸿石料公司|雷州草罗岭采石场|北流市铜州恒发鸿翔建筑材料|高州市强发石料有限公司|廉江市合顺矿业有限公司|湛江市风山水起贸易有限公司|陆川县砂场|高州市红岗矿业有限公司|阳西海滨电力发电有限公司|台泥（贵港）水泥有限公司|中铁四局集团物资工贸有限公司天津分公司|广东韶钢松山股份有限公司|安徽中铁工程材料科技有限公司|罗定市苹塘镇泽时石料有限公司|水利部珠江水利委员会基本建设工程质量检测中心|罗定市强建新材料科技有限公司|茂名热电厂|广东粤电茂名电厂|河北翼星紧固件制造有限公司|罗定市和富混凝土有限公司|广东粤韶钢铁有限公司|无|茂名市海润化工有限公司|湛江市永康化工原料有限公司|广东建盛高新材料有限公司|宝钢湛江钢铁有限公司|泰安君和金属材料有限公司|天津市光泽金属制品有限公司|广西钢铁集团有限公司|唐山市赛和机器科技有限价公司|湛江市海螺水泥有限责任公司|阳江市大地环保建材有限公司|阳西海滨电力发展有限公司|中国水利水电第三工程局有限公司·中铁隧道局集团有限公司联合体|环北部湾广东水资源配置工程PCCP管材采购02标|环北部湾广东水资源配置工程PCCP管材采购01标|环北部湾广东水资源配置工程PCCP管材采购03标|广西金鲤水泥有限公司|茂名市大地水泥有限公司|廉江市丰诚水泥有限公司|阳西火力发电站|广州珠江电力有限公司|广西陆川南方矿业有限公司|广西石场|陆川县万昌建材批发有限公司|茂名市久联贸易有限公司|陆川县泰鑫建材批发有限公司|河北津西钢铁股份有限公司|武钢集团昆明钢铁股份有限公司|广西柳州钢铁集团有限公司|渭南临渭区恒诺工贸有限公司|中国水利水电工程局有限公司环北部湾广东水资源配置工程施工B4标项中垌拌合站|厦门益材粉煤灰有限公司|湛江强熊建材有限公司|茂名茂盛综合贸易有限公司|聊城市青山新材料有限公司|河钢股份有限公司承德分公司|广东中南钢铁股份有限公司|广东水电二局股份有限公司|中电建生态环境集团有限公司．中国水利水电第十四工程局有限公司（联合体）|辽宁晟荣建材新技术有限责任公司|阳江市众鑫环保实业有限公司|广西红墙新材料有限公司|厂区自来水|吴川集鸿新材料有限公司|茂名茂盛综合易贸有限公司|新郑市烨地贝源商贸有限公司|宝武集团·广东中南钢铁股份有限公司|日照型钢有限公司|佛山市三水振鸿钢制品有限公司|马鞍山钢铁股份有限公司|临沂金正阳管业有限公司|武钢集团昆明钢铁有限公司|衡水广信机械连接设备有限公司|深圳市乾景建材有限公司|中铁一局集团工业贸易有限公司|中国水利水电第七工程局有限公司|湛江海螺水泥有限责任公司|中国水利水电第五工程局有限公司·中铁十一局集团有限公司联合体环北部湾广东水资源配置工程施工B2标项目经理部|中国水利水电第十四工程局有限公司|云南海恒建材有限责任公司|中铁四局集团有限公司";
    private String saveListStr =
            "罗定市和富混凝土有限公司|中铁四局集团有限公司|江西新华|重庆飞源|天津市春鹏预应力钢绞线有限公司|水电十四局|云南宸磊建材有限公司|中铁四局集团有限公司|罗定市和富混凝土有限公司|罗定市和富混凝土有限公司|罗定市和富混凝土有限公司|天津市春鹏预应力钢绞线有限公司";

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        dashboardViewModel =
                new ViewModelProvider(this).get(DashboardViewModel.class);

        binding = FragmentDashboardBinding.inflate(inflater, container, false);
        View root = binding.getRoot();

        final Button button = binding.textDashboard;
        dashboardViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
            @Override
            public void onChanged(@Nullable String s) {
                button.setText(s);
            }
        });
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String[] mArraySource = description.split("\\|");
                String[] saveListSource = saveListStr.split("\\|");
                List<String> srtList = ArrayUtils.asArrayList(mArraySource);
                List<String> saveSrtList = ArrayUtils.asArrayList(saveListSource);
//                Set<String> set = new LinkedHashSet<>(saveSrtList);
//                saveSrtList.clear();
//                saveSrtList.addAll(set);
                saveSrtList = saveSrtList.stream().distinct().collect(Collectors.toList());
                srtList.removeAll(saveSrtList);
                srtList.addAll(0, saveSrtList);
//                for (String s : srtList) {
//                    INSLog.e("endList", s);
//                }
                mArraySource = srtList.toArray(new String[srtList.size()]);
                for (String s : mArraySource) {
                    INSLog.e("endList", s);
                }
                INSLog.e("endList", "长度：" + srtList.size());
            }
        });
        return root;
    }

    public List<String> removeRepeatFactor(List<String> list1, List<String> list2) {
        if (list1 != null && list2 != null) {
            if (list1.size() != 0 && list2.size() != 0) {
                Collection A = new ArrayList(list1);
                Collection B = new ArrayList(list2);
                A.retainAll(B);
                if (A.size() != 0) {
                    B.removeAll(A);
                }
                return (List<String>) B;
            }
        }
        return list2;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        binding = null;
    }
}